/*****************************************************************
Wowengine - v0.1

File: wen_system.h
Creation date: 2009-04-03
*****************************************************************/

/****************************************************************/
#ifndef WEN_SYSTEM_H
#define WEN_SYSTEM_H
/****************************************************************/
#pragma warning (disable:4251)
#ifdef WEN_DLL_Export
	#define WEN_API __declspec(dllexport)
#else
	#define WEN_API __declspec(dllimport)
#endif // WEN_DLL_Export

/****************************************************************/
// Standard includes
#include <windows.h>
#include <string>
#include <vector>
#include <map>
#include <cassert>
#include <cmath>
#include <exception>
/****************************************************************/

// Boost smart pointer
#include <boost/shared_ptr.hpp>

#define DECLARE_SMART_POINTER(classname) \
	public:	\
		typedef boost::shared_ptr<classname> Ptr;

/****************************************************************/
#define SAFE_RELEASE(x) if (x) { (x)->Release(); (x) = NULL; }
#define SAFE_DELETE(x) if (x) { delete(x); (x) = NULL; }
#define SAFE_DELETE_ARRAY(x) if (x) { delete[](x); (x) = NULL; }
#define SHOW_ERROR(s, f, l) char buf[1024]; sprintf(buf, "File: %s\nLine: %d\n%s", f, l, s); MessageBox(0, buf, "Error", 0);
/****************************************************************/

//----------------------------------------------------------------
#endif // WEN_SYSTEM_H
//----------------------------------------------------------------
